export interface StyleConfig {
  gridColumnStart?: string,
  gridRowStart?: string
}

export interface MeunItem {
  name: string,
  id: number,
  url?: string,
  title?: string,
  iconUrl?: string,
  style?: StyleConfig,
  list?: MeunItem[],
  type?: string
}
export interface SerachConfig {
  key?: string,
  uri: string,
  icon?: string,
  name?: string
}
export interface ContextMenuInstance {
  id: number
  destroy: () => void
}

export interface ContextMenuProps {
  options: ContextMenuOptions
  onClose?: () => void
}

export interface ContextMenuOptions {
  customItems?: RightMenuItem[]
  items: RightMenuItem[]
  theme?: string
  onClose?: () => void
}

export interface RightMenuItem {
  label?: string
  icon?: string
  svg?: Component
  disabled?: boolean
  visible?: boolean
  divided?: boolean
  children?: RightMenuItem[]
  onClick?: () => void
}


export interface AddMenuOptions {
  dialogConfig?: boolean
  onClose?: () => void
}



export interface AddMenuProps {
  config?: MeunItem,
  dialogConfig?: boolean,
  onClose?: () => void,
  onSubmit?: (data:MeunItem) => void
}


export interface ContextConfig {
  [key: string]: MeunItem[] | any,
  leftAside?: MeunItem[],
  main?: MeunItem[],
  rightAside?: MeunItem[],
  backgroundImg?: string
}